﻿Imports Microsoft.Practices.Composite.Regions
Imports System.Windows.Input
Imports Infragistics.Windows.Ribbon
Imports System.Windows

Public Interface INavigationService

    Sub RegisterTabRegion(ByVal newRegionName As String, ByVal header As String, Optional ByVal addToRegionName As String = RegionNames.Shell_Ribbon)
    Sub RegisterTabRegion(ByVal newRegionName As String, ByVal ribbonTabItem As RibbonTabItem, Optional ByVal addToRegionName As String = RegionNames.Shell_Ribbon)
    Sub RegisterContextualTabGroupRegion(ByVal newRegionName As String, ByVal header As String, Optional ByVal addToRegionName As String = RegionNames.Shell_Ribbon)
    Sub RegisterContextualTabGroupRegion(ByVal newRegionName As String, ByVal contextualTab As ContextualTabGroup, Optional ByVal addToRegionName As String = RegionNames.Shell_Ribbon)
    Sub RegisterMenuTool(ByVal newRegionName As String, ByVal caption As String, Optional ByVal addToRegionName As String = RegionNames.Shell_RibbonApplicationMenu)
    Sub RegisterMenuTool(ByVal newRegionName As String, ByVal menuTool As MenuTool, Optional ByVal addToRegionName As String = RegionNames.Shell_RibbonApplicationMenu)
    Sub RegisterRibbonGroup(ByVal newRegionName As String, ByVal caption As String, Optional ByVal addToRegionName As String = RegionNames.Shell_Ribbon_HomeTab)
    Sub RegisterRibbonGroup(ByVal newRegionName As String, ByVal ribbonGroup As RibbonGroup, Optional ByVal addToRegionName As String = RegionNames.Shell_Ribbon_HomeTab)
    Sub EnsureBaseRegions()

    Sub AddSeparatorTool()
    Sub AddButtonTool(ByVal caption As String, ByVal command As ICommand, ByVal commandParam As Object, ByVal addToRegionName As String)
    Sub AddLabelTool(ByVal caption As String, ByVal regionName As String)
    Sub AddRadioButtonTool(ByVal caption As String, ByVal isChecked As Boolean, ByVal command As ICommand, ByVal commandParam As Object, ByVal addToRegionName As String)
    Sub AddTool(ByVal labelTool As LabelTool, ByVal addToRegionName As String)
    Sub AddTool(ByVal radioButtonTool As RadioButtonTool, ByVal addToRegionName As String)
    Sub AddTool(ByVal buttonTool As ButtonTool, ByVal addToRegionName As String)
    Sub AddTool(ByVal separatorTool As SeparatorTool, ByVal addToRegionName As String)
    Sub AddTool(ByVal control As UIElement, ByVal addToRegionName As String)

End Interface
